Internet Protocols (IPs) are employed in networks to transmit data such as audio and video data from a source device (e.g., a server computer system) to one or more receiver devices (e.g., desktop computer systems). Unicast, broadcast, and multicast are three well known techniques for transmitting data between source and receiver devices. Unicast is a point-to-point communication technique in which data is transmitted between only two devices (i.e., one source and one receiver). Broadcast communication enables one source to transmit data to all receivers in a broadcast domain. Multicasting allows a source or several sources to transmit data simultaneously to select receivers, i.e., those receivers in a multicast group. Multicast data or packets are replicated in the network by multicast enabled routers at the point where communication paths diverge to separate receivers. In this fashion, the multicast protocol delivers data to multiple receivers without burdening the source or consuming excessive network bandwidth.
There are several versions of the multicast protocol, including Sparse Mode (SM) and Source Specific Mode (SSM) protocols. FIG. 1 illustrates relevant components of a network 10 that can employ either SM or SSM protocols. More particularly, FIG. 1 shows sources 12a and 12b coupled to receivers 14a-14d via a series of routers 16-16d and communication links 20.
In an SM network, the various multicast enabled routers establish a default multicast distribution tree, referred to as a “shared tree,” for each multicast group. Each shared tree is rooted at a rendezvous point (RP) router that acts as the distribution point for multicast data transmitted to receivers of a multicast group. Before a source device can begin transmitting data to receivers of a multicast group, the device must first register with the RP router. Moreover, for a device to join a multicast group as a receiver, the device must join towards the RP router. Once a device joins a multicast group as a receiver, the RP router establishes a communication path between one or more sources and the newly joined receiver.
To further illustrate, presume that router 16a is configured in network 10 as the RP router for a multicast group G1 consisting of receiver devices 14a and 14d. Further, presume that device 14b seeks to join multicast group G1 as a receiver. Device 14b can join the multicast group by first generating a membership report in compliance with Internet Management Group Protocol version 1 (IGMPv1) or Internet Management Group Protocol version 2 (IGMPv2). The identity G1 of the multicast group is included in the membership report along with the identity (e.g., an Internet address) of device 14b. The IGMP membership report is transmitted by device 14b to uplink router 16b via uplink 22a. Uplink router 16b, in response to receiving the IGMP report from device 14b, generates a request to join multicast group G1. In an SM network, this request is designated PIM (*, G1) JOIN, and its sent hop by hop towards the RP router. In SM protocol, the * within the request indicates that the device (e.g., device 14b) seeking to join multicast group G1 should receive data from all sources providing data to the multicast group G1. Thus, if sources 12a and 12b are providing data to receivers within the multicast group G1, device 14b will receive data from both sources 12a and 12b once device 14b joins multicast group G1 as a receiver. For purposes of explanation, it will be presumed that device 12a is the only source providing data to multicast group G1.
The PIM (*, G1) JOIN is transmitted by uplink router 16b to RP router 16a. RP router 16a, in response to receiving PIM (*, G1) JOIN, may establish a communication path between source 12a and itself creating a full path between the source and the receiver through the RP that includes routers 16a, 16b, and 16c. Once this communication path is established, source device 12a transmits data to receivers. Devices 14a, 14c and 14d can similarly join group G1 using the multicast technique described above to also receive data traffic from source 12a. It is noted that the SM protocol may be defined in Internet Engineering Task Force (IETF) Request For Comments (RFC) 2362 entitled “Protocol Independent Multicast—Sparse Mode (PIM-SM): Protocol Specification,” published in June 1998, and hereby incorporated by reference in its entirety.
After the communication path is established between source device 12a and receiver device 14b via routers 16a, 16b, and 16c, uplink router 16b may trigger a routine to select a faster and/or more efficient communication path between source device 12a and receiver device 14b that does not include RP router 16a. For example, RP router may establish a new communication path between source device 12a and receiver device 14b that includes only routers 16d and 16b. However, selecting and establishing a more efficient communication path between source 12a and receiver 14b adds some protocol complexity. Once a new and more efficient communication path is established between source device 12a and receiver device 14b, the original communication path is pruned such that only two routers 16d and 16b must be utilized as opposed to three routers 16c, 16a and 16b of the former communication path. This source specific path between 12a and 14b for group G1 is called a source tree and is represented by the notation (S,G), which in this case would result in (12a, G1) and provides the shortest path between the source and the receivers.
As noted above, network 10 may also operate according to SSM protocol. Unlike an SM network, an SSM network does not employ an RP router. In an SSM protocol network, when a device seeks to join a multicast group as a receiver, the device will know in advance the identity of the source from which it seeks to receive data. This enables a new receiver to directly join a multicast group on the shortest path tree towards the source (i.e., without first going through an RP router). Compared to an SM protocol network, an SSM protocol network is more efficient. However, with an SSM network, a receiver device can receive data from only one source (or few sources) within a multicast group. For purposes of explanation, presume that network 10 operates according to SSM protocol, and that devices 14a and 14c are members of a multicast group G2 that receive data from source 12a. Further, presume that device 14b seeks to join multicast group G2 as a new receiver.
Typically, before device 14b can join multicast group G2, device 14b must generate a membership report using IGMP version 3 (IGMPv3) protocol. It is noted that device 14b can join multicast group G2 as a receiver even though device 14b executes only IGMPv1 or IGMPv2 if device 14b and/or router 16b implement the method described in U.S. patent application Ser. No. 10/208,977 entitled “Source Specific Multicast Group to Source Mapping,” filed on Jul. 31, 2002. The foregoing patent application is incorporated herein by reference in its entirety. However, for purposes of explanation, it will be presumed that device 14b operates according to IGMPv3 only. The IGMPv3 membership report identifies both the source device 12a and the multicast group that device 14b wishes to join. In contrast, the IGMPv1 or IGMPv2 membership report generated for an SM protocol network device does not identify the source from which data is sought. The IGMPv3 report generated by device 14b is transmitted to uplink router 16b via uplink 22a. Thereafter uplink router 16b establishes a communication path between source device 12a and device 14b via routers 16b and 16d. With this communication path (12a,G2) established, source device 12a transmits data to receiver device 14b via routers 16d and 16b while also transmitting data to the other receivers in multicast group G2.
FIG. 1 presumes that network 10 operates according to either SM protocol or SSM protocol, but not both. FIG. 2 illustrates a network in which both SM and SSM protocols are employed. More particularly, FIG. 2 shows a network 28 consisting of a subnetwork 30 that operates according to SSM protocol, and a subnetwork 32 that operates according to SM protocol. Subnetwork 30 consists of a pair of devices (e.g., computer systems such as servers) 36 that act as source devices. Further, subnetwork 30 includes a pair of multicast enabled routers 44 coupled to source devices 36 via uplink 42. Subnetwork 32 includes devices 40 (e.g., computer systems such as desktops) that can act as receivers. Subnetwork 32 also includes multicast enabled routers 44 coupled to each other via communication links 46 and to devices 40 via uplinks 42a and 42b. Lastly, subnetwork 30 is coupled to subnetwork 32 via communication links 50 and 52. Although FIG. 2 shows direct communication between subnetworks 30 and 32, subnetworks 30 and 32 may be indirectly coupled together. For example, communication link 50 and/or 52 may take form in the Internet operating according to TCP/IP.
As noted, subnetwork 30 operates according to SSM protocol while subnetwork 32 operates according to SM protocol. Because of differences between these multicast protocols, receiver devices 40 within subnetwork 32, executing IGMPv1 or IGMPv2, could not receive multicast data to which devices 36 are sources. It is noted that receiver devices 40 could join a multicast group to which source devices 36 provide data if receiver devices 40 and/or routers 44b and 44e implement the invention described in U.S. patent application Ser. No. 10/208,977. Configuring such devices (e.g., routers 44b and 44e) according to the invention described in U.S. patent application Ser. No. 10/208,977 may require a significant amount of time, cost, and effort, particularly if subnetwork 32 contains several thousand devices that provide connectivity to other receiver devices 40.